Hyperelliptic Curve Cryptography
   HOME

TheInfoList



OR:

Hyperelliptic curve cryptography is similar to
elliptic curve cryptography Elliptic-curve cryptography (ECC) is an approach to public-key cryptography based on the algebraic structure of elliptic curves over finite fields. ECC allows smaller keys compared to non-EC cryptography (based on plain Galois fields) to provide ...
(ECC) insofar as the Jacobian of a
hyperelliptic curve In algebraic geometry, a hyperelliptic curve is an algebraic curve of genus ''g'' > 1, given by an equation of the form y^2 + h(x)y = f(x) where ''f''(''x'') is a polynomial of degree ''n'' = 2''g'' + 1 > 4 or ''n'' = 2''g'' + 2 > 4 with ''n'' dis ...
is an
abelian group In mathematics, an abelian group, also called a commutative group, is a group in which the result of applying the group operation to two group elements does not depend on the order in which they are written. That is, the group operation is comm ...
in which to do arithmetic, just as we use the group of points on an elliptic curve in ECC.


Definition

An (imaginary) hyperelliptic curve of
genus Genus ( plural genera ) is a taxonomic rank used in the biological classification of living and fossil organisms as well as viruses. In the hierarchy of biological classification, genus comes above species and below family. In binomial nom ...
g over a field K is given by the equation C : y^2 + h(x) y = f(x) \in K ,y/math> where h(x) \in K /math> is a polynomial of degree not larger than g and f(x) \in K /math> is a monic polynomial of degree 2g + 1. From this definition it follows that elliptic curves are hyperelliptic curves of genus 1. In hyperelliptic curve cryptography K is often a
finite field In mathematics, a finite field or Galois field (so-named in honor of Évariste Galois) is a field that contains a finite number of elements. As with any field, a finite field is a set on which the operations of multiplication, addition, subtr ...
. The Jacobian of C, denoted J(C), is a quotient group, thus the elements of the Jacobian are not points, they are equivalence classes of
divisors In mathematics, a divisor of an integer n, also called a factor of n, is an integer m that may be multiplied by some integer to produce n. In this case, one also says that n is a multiple of m. An integer n is divisible or evenly divisible by ...
of degree 0 under the relation of linear equivalence. This agrees with the elliptic curve case, because it can be shown that the Jacobian of an elliptic curve is isomorphic with the group of points on the elliptic curve. The use of hyperelliptic curves in cryptography came about in 1989 from
Neal Koblitz Neal I. Koblitz (born December 24, 1948) is a Professor of Mathematics at the University of Washington. He is also an adjunct professor with the Centre for Applied Cryptographic Research at the University of Waterloo. He is the creator of hyp ...
. Although introduced only 3 years after ECC, not many cryptosystems implement hyperelliptic curves because the implementation of the arithmetic isn't as efficient as with cryptosystems based on elliptic curves or factoring ( RSA). The efficiency of implementing the arithmetic depends on the underlying finite field K, in practice it turns out that finite fields of characteristic 2 are a good choice for hardware implementations while software is usually faster in odd characteristic. The Jacobian on a hyperelliptic curve is an Abelian group and as such it can serve as group for the discrete logarithm problem (DLP). In short, suppose we have an Abelian group G and g an element of G, the DLP on G entails finding the integer a given two elements of G, namely g and g^a. The first type of group used was the multiplicative group of a finite field, later also Jacobians of (hyper)elliptic curves were used. If the hyperelliptic curve is chosen with care, then Pollard's rho method is the most efficient way to solve DLP. This means that, if the Jacobian has n elements, that the running time is exponential in \log(n). This makes it possible to use Jacobians of a fairly small order, thus making the system more efficient. But if the hyperelliptic curve is chosen poorly, the DLP will become quite easy to solve. In this case there are known attacks which are more efficient than generic discrete logarithm solvers or even subexponential. Hence these hyperelliptic curves must be avoided. Considering various attacks on DLP, it is possible to list the features of hyperelliptic curves that should be avoided.


Attacks against the DLP

All generic attacks on the
discrete logarithm problem In mathematics, for given real numbers ''a'' and ''b'', the logarithm log''b'' ''a'' is a number ''x'' such that . Analogously, in any group ''G'', powers ''b'k'' can be defined for all integers ''k'', and the discrete logarithm log''b' ...
in finite abelian groups such as the
Pohlig–Hellman algorithm In group theory, the Pohlig–Hellman algorithm, sometimes credited as the Silver–Pohlig–Hellman algorithm, Mollin 2006, pg. 344 is a special-purpose algorithm for computing discrete logarithms in a finite abelian group whose order is a smoot ...
and Pollard's rho method can be used to attack the DLP in the Jacobian of hyperelliptic curves. The Pohlig-Hellman attack reduces the difficulty of the DLP by looking at the order of the group we are working with. Suppose the group G that is used has n = p_1^ \cdots p_k^ elements, where p_1^ \cdots p_k^ is the prime factorization of n. Pohlig-Hellman reduces the DLP in G to DLPs in subgroups of order p_i for i = 1,...,k. So for p the largest prime divisor of n, the DLP in G is just as hard to solve as the DLP in the subgroup of order p. Therefore we would like to choose G such that the largest prime divisor p of \#G = n is almost equal to n itself. Requiring \frac \leq 4 usually suffices. The
index calculus algorithm In computational number theory, the index calculus algorithm is a probabilistic algorithm for computing discrete logarithms. Dedicated to the discrete logarithm in (\mathbb/q\mathbb)^* where q is a prime, index calculus leads to a family of algorit ...
is another algorithm that can be used to solve DLP under some circumstances. For Jacobians of (hyper)elliptic curves there exists an index calculus attack on DLP. If the genus of the curve becomes too high, the attack will be more efficient than Pollard's rho. Today it is known that even a genus of g=3 cannot assure security. Hence we are left with elliptic curves and hyperelliptic curves of genus 2. Another restriction on the hyperelliptic curves we can use comes from the Menezes-Okamoto-Vanstone-attack / Frey-Rück-attack. The first, often called MOV for short, was developed in 1993, the second came about in 1994. Consider a (hyper)elliptic curve C over a finite field \mathbb_ where q is the power of a prime number. Suppose the Jacobian of the curve has n elements and p is the largest prime divisor of n. For k the smallest positive integer such that p , q^k - 1 there exists a computable injective
group homomorphism In mathematics, given two groups, (''G'', ∗) and (''H'', ·), a group homomorphism from (''G'', ∗) to (''H'', ·) is a function ''h'' : ''G'' → ''H'' such that for all ''u'' and ''v'' in ''G'' it holds that : h(u*v) = h(u) \cdot h(v) w ...
from the subgroup of J(C) of order p to \mathbb_^. If k is small, we can solve DLP in J(C) by using the index calculus attack in \mathbb_^. For arbitrary curves k is very large (around the size of q^g); so even though the index calculus attack is quite fast for multiplicative groups of finite fields this attack is not a threat for most curves. The injective function used in this attack is a
pairing In mathematics, a pairing is an ''R''-bilinear map from the Cartesian product of two ''R''-modules, where the underlying ring ''R'' is commutative. Definition Let ''R'' be a commutative ring with unit, and let ''M'', ''N'' and ''L'' be ''R''-mod ...
and there are some applications in cryptography that make use of them. In such applications it is important to balance the hardness of the DLP in J(C) and \mathbb_^; depending on the security level values of k between 6 and 12 are useful. The subgroup of \mathbb_^ is a
torus In geometry, a torus (plural tori, colloquially donut or doughnut) is a surface of revolution generated by revolving a circle in three-dimensional space about an axis that is coplanar with the circle. If the axis of revolution does not tou ...
. There exists some independent usage in torus based cryptography. We also have a problem, if p, the largest prime divisor of the order of the Jacobian, is equal to the characteristic of \mathbb_. By a different injective map we could then consider the DLP in the additive group \mathbb_q instead of DLP on the Jacobian. However, DLP in this additive group is trivial to solve, as can easily be seen. So also these curves, called anomalous curves, are not to be used in DLP.


Order of the Jacobian

Hence, in order to choose a good curve and a good underlying finite field, it is important to know the order of the Jacobian. Consider a hyperelliptic curve C of genus g over the field \mathbb_ where q is the power of a prime number and define C_k as C but now over the field \mathbb_. It can be shown that the order of the Jacobian of C_k lies in the interval \sqrt^ - 1)^, (\sqrt^ + 1)^/math>, called the Hasse-Weil interval. But there is more, we can compute the order using the zeta-function on hyperelliptic curves. Let A_k be the number of points on C_k. Then we define the zeta-function of C = C_1 as Z_(t) = \exp(\sum_^). For this zeta-function it can be shown Alfred J. Menezes, Yi-Hong Wu, Robert J. Zuccherato, An elementary introduction to hyperelliptic curves
page 29 that Z_C(t) = \frac where P(t) is a polynomial of degree 2g with coefficients in \mathbb. Furthermore P(t) factors as P(t) = \prod_^ where a_i \in \mathbb for all i = 1,...,g. Here \bar denotes the
complex conjugate In mathematics, the complex conjugate of a complex number is the number with an equal real part and an imaginary part equal in magnitude but opposite in sign. That is, (if a and b are real, then) the complex conjugate of a + bi is equal to a - ...
of a. Finally we have that the order of J(C_k) equals \prod_^. Hence orders of Jacobians can be found by computing the roots of P(t).


References


External links

* Colm Ó hÉigeartaig
Implementation of some hyperelliptic curves algorithms
usin
MIRACL
{{DEFAULTSORT:Hyperelliptic Curve Cryptography Public-key cryptography Elliptic curve cryptography